package com.zmn.oms.zmn.facade.interfaces.entrust;

import com.zmn.oms.common.dto.ResultDTO;
import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.dto.entrust.EntrustOrderDetailDTO;
import com.zmn.oms.model.dto.entrust.NewEntrustOrderDTO;
import com.zmn.oms.model.entity.entrust.EntrustOrder;
import com.zmn.oms.model.entity.entrust.EntrustOrderQuery;
import com.zmn.oms.model.vo.work.ZsOrderWorkVO;

import java.util.List;

/**
 * 类描述：
 *
 * @author lhl
 * @date 2020/01/14 17:54
 */
public interface EntrustOrderFacade {

    /**
     * 录入新委托单
     * @param newEntrustOrderDTO
     */
    ResultDTO<EntrustOrder> insertOrder(NewEntrustOrderDTO newEntrustOrderDTO) throws OmsBaseException;

    /**
     * 查询委托单
     * @param query
     */
    ResultDTO<List<ZsOrderWorkVO>> listOrders(EntrustOrderQuery query) throws OmsBaseException;

    /**
     * 查询委托单
     * @param entrustId
     */
    ResultDTO<EntrustOrder> findById(Long entrustId) throws OmsBaseException;

    /**
     * 查询委托单详情
     * @param entrustId
     */
    ResultDTO<EntrustOrderDetailDTO> detail(Long entrustId) throws OmsBaseException;
}
